Me preguntaba, ¿los espacios en blanco y los comentarios ralentizan JavaScript? Estoy haciendo un ataque de fuerza bruta que lleva algo de tiempo (30 segundos). La eliminación de espacios en blanco no muestra un crecimiento significativo en la velocidad, pero creo que el navegador simplemente tiene que analizar más. Entonces, ¿es útil eliminar los espacios en blanco y los comentarios innecesarios para acelerar el proceso?
2020-12-14 08:20:20
La gente suele utilizar minimizadores para reducir el TAMAÑO del script, para mejorar la velocidad de descarga, en lugar de marcar una diferencia en la velocidad de análisis del script. Los espacios en blanco y los comentarios tendrán poco efecto en el tiempo que tarda un navegador en ejecutarse, ya que el analizador necesita verificar si es un espacio en blanco o un comentario, pero en realidad esto será tan diminuto con la potencia informática actual, sería imposible notar cualquier impacto. Sin embargo, el TAMAÑO sigue siendo importante incluso con el gran ancho de banda disponible en nuestro mundo de banda ancha. | Los espacios en blanco y los comentarios aumentan el tamaño del archivo JavaScript, lo que ralentiza la descarga real del archivo desde el servidor; la minificación es el proceso de eliminar caracteres innecesarios de un archivo JavaScript para hacerlo más pequeño y más fácil de descargar. Sin embargo, dado que menciona un ataque de fuerza bruta, el cuello de botella probablemente no sea la descarga. Intente usar un generador de perfiles para encontrar lo que lo frena. | Siempre tiene sentido minificar, combinar y comprimir sus activos para facilitar la carga del servidor. Minificar es el acto al que se refiere, de eliminar los espacios en blanco y los comentarios innecesarios, para reducir la velocidad de descarga. Lo más probable es que la combinación muestre un aumento aún mayor en la velocidad de representación de la página; es el acto de fusionar todos sus archivos javascript en uno, y todos sus archivos css en uno (también se puede hacer para la mayoría de las imágenes, pero eso requiere algo más de trabajo). Esto se hace para reducir la cantidad de solicitudes que el navegador tiene que hacer hacia su servidor para poder mostrar la página. GZipping es el acto de comprimir aún más los datos, en un formato comprimido, en los navegadores que indican que aceptarán dichos datos. Esto reduce aún más el tamaño, pero agrega una carga de trabajo adicional en ambos extremos. Es probable que obtenga una ganancia neta. Dependiendo del entorno en el que esté trabajando, hay diferentes componentes que lo ayudarán con esto, que generalmente cubren todo lo anterior de una vez. El tiempo que tarda su código en descargarse del servidor tiene un efecto directo sobre el tiempo que tarda la página en renderizarse. JavaScript está bloqueando, lo que significa que un bloque JS evitará cualquier renderizado posterior, hasta que el bloque se haya ejecutado por completo. Como tal, dónde coloque sus archivos javascript (es decir, en qué punto del proceso de renderizado se solicitarán), cuántas solicitudes se necesitan para que se descargue por completo y cuántos datos hay para descargar, tendrá un impacto en la carga de su página, como le aparece al usuario. Una vez que el navegador haya analizado su código, ya sea javascript, css o html, habrá creado representaciones internas de la parte que necesita recordar y el formato real ya no lo afectará. | No creo que los espacios en blanco en js-code ralenticen su ejecución. Por lo que tengo entendido, un intérprete de JavaScript elimina todos los comentarios y los espacios en blanco redundantes antes de procesarlos. Sin embargo, puede influir en el tiempo de descarga y, por tanto, en el tiempo de carga de una página web. Eche un vistazo aquí para obtener un poco de información adicional. | Sin embargo, tiene poco o ningún impacto en la velocidad de procesamiento real ... Tamaño más pequeño => menos ancho de banda => menos costos => ??? => ¡beneficio! | Tu respuesta StackExchange.ifUsing ("editor", function () { StackExchange.using ("editor externo", función () { StackExchange.using ("fragmentos", función () { StackExchange.snippets.init (); }); }); }, "fragmentos de código"); StackExchange.ready (function () { var channelOptions = { etiquetas: "" .split (""), id: "1" }; initTagRenderer ("". split (""), "" .split (""), channelOptions); StackExchange.using ("editor externo", función () { // Debe activar el editor después de los fragmentos, si los fragmentos están habilitados if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using ("fragmentos", función () { createEditor (); }); } else { createEditor (); } }); function createEditor () { StackExchange.prepareEditor ({ useStacksEditor: false, heartbeatType: 'respuesta', autoActivateHeartbeat: falso, convertImagesToLinks: verdadero, noModals: cierto, showLowRepImageUploadWarning: true, reputacionToPostImages: 10, bindNavPrevention: verdadero, sufijo: "", imageUploader: { brandingHtml: "Desarrollado por \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" svg-icon \ "width = \" 50 \ "height = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.9832 4.61182 48.1414 4.61182C47.4335 4.61182 46.725645.4305.168 43.1481 6.59048V11.9512C43.1481 13.2535 43.6264 13.8962 44.6595 13.8962C45.6924 13.8962 46.1709 13.2535 46.1709 11.9512V9.17788Z \ "/ \ u003e \ u003cpath d = \" M32.492 10.1419C32.492 14.648.942348 41.5985 12.6954 41.5985 10.1419V6.59049C 41.5985 5.28821 41.1394 4.6623240.1061 4.66232C39.0732 4.66232 38.5948 5.28821 38.5948 6.59049V9.60062C38.5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35. "/ \ u003e \ u003cpath fill-rule = \" evenodd \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6. 59049C30.9615 5.28821 30.4833 4.66231 29.4502 4.66231C28.9913 4.66231 28.4555 4.94978 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C13.013.49.002. 1109 12.7229 28.1161 12.7799 28.121 12.8346C28.1256 12.8854 28.1301 12.9342 28.1301 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 22.521C 14.7787C39.577 18 21.2429 15.0123 21.2429 15.6887C21.2429 16.7375 22.9072 17.6335 25.6622 17.6335ZM24.1317 9.27932C24.1317 7.94324 24.9928 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 11.0918 9,27911.632.511 \ "/ \ u003e \ u003cpath d = \" M16.8045 11.9512C16.8045 13.2535 17.2637 13.8962 18.2965 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4012.259 4.62866C .653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.0002066 13.8992.8352. .90741C8.0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.915 7 13.2535 13.9157 11.9512V8.90741C13.9157 7.58817 14.3365 6.91179 15.4269 6.91179C16.4027 6.91179 16.8045 7.58817 16.8045 8.94108V11.9512Z \ "/ \ u003e \ u003cpath d =" M3.31675 6.5906221C3.2824. 791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.2535 0.791758 13.8962 1.82471 13.8962C2.85798 13.8962 3.31675 13.2535 3.31675 11.9512V6.59049Z \ "/ \ u003e \ u003cpath d = \" M0036121C029.8 C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.87869 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z \ "fill = \" # 1BB76E \ "/ \ u003e \ u003c / sv3e \ u003e", ae contentPolicyHtml: "Contribuciones de usuario con licencia bajo \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (política de contenido) \ u003c / a \ u003e", allowUrls: verdadero }, onDemand: verdadero, discardSelector: ".discard-answer" , initialShowMarkdownHelp: true, enableTables: true, enableSnippets: true }); } }); ¡Gracias por contribuir con una respuesta a Stack Overflow! Asegúrese de responder la pregunta. ¡Proporcione detalles y comparta su investigación! Pero evita ... Pedir ayuda, aclaraciones o responder a otras respuestas. Hacer declaraciones basadas en opiniones; respóndelos con referencias o experiencia personal. Para obtener más información, consulte nuestros consejos sobre cómo escribir buenas respuestas. Borrador guardado Borrador descartado Regístrate o inicia sesión StackExchange.ready (function () { StackExchange.helpers.onClickDraftSave ('# login-link'); }); Regístrese con Google Regístrate usando Facebook Regístrese con correo electrónico y contraseña Enviar Publicar como invitado Nombre Email Requerido, pero nunca mostrado StackExchange.ready ( function () { StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f4423553% 2fdo-spaces-comments-slow-javascript-down% 23new-answer', 'question_page' ); } ); Publicar como invitado Nombre Email Requerido, pero nunca mostrado Publica tu respuesta Descarte Al hacer clic en "Publicar su respuesta", acepta nuestros términos de servicio, política de privacidad y política de cookies. No es la respuesta que estás buscando? Examine otras preguntas etiquetadas con javascript o haga su propia pregunta.